Imports System.Collections.Generic

Namespace OpenArchive
    Namespace Document
        Namespace Components
            Public Class Indices
                Implements IList

                Private m_indeces As ArrayList

                Public Sub CopyTo(ByVal array As Array, ByVal index As Integer) Implements ICollection.CopyTo

                End Sub

                Public ReadOnly Property Count() As Integer Implements ICollection.Count
                    Get
                        Return m_indeces.Count
                    End Get
                End Property

                Public ReadOnly Property IsSynchronized() As Boolean Implements ICollection.IsSynchronized
                    Get

                    End Get
                End Property

                Public ReadOnly Property SyncRoot() As Object Implements ICollection.SyncRoot
                    Get

                    End Get
                End Property

                Public Function GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator
                    Return m_indeces.GetEnumerator
                End Function

                Public Shadows Function Add(ByVal value As Object) As Integer Implements IList.Add
                    Dim val As IndexComponent
                    val = TryCast(value, IndexComponent)
                    If Not val Is Nothing Then
                        Add(val)
                    Else
                        Throw New NullReferenceException
                    End If
                End Function
                Public Shadows Function Add(ByVal value As IndexComponent) As Integer
                    ' ToDo Create IndexComponent and add it to m_indeces
                End Function
                
                Public Sub Clear() Implements IList.Clear

                End Sub

                Public Function Contains(ByVal value As Object) As Boolean Implements IList.Contains

                End Function

                Public Function IndexOf(ByVal value As Object) As Integer Implements IList.IndexOf

                End Function

                Public Sub Insert(ByVal index As Integer, ByVal value As Object) Implements IList.Insert

                End Sub

                Public ReadOnly Property IsFixedSize() As Boolean Implements IList.IsFixedSize
                    Get

                    End Get
                End Property

                Public ReadOnly Property IsReadOnly() As Boolean Implements IList.IsReadOnly
                    Get

                    End Get
                End Property

                Default Public Property Item(ByVal index As Integer) As Object Implements IList.Item
                    Get

                    End Get
                    Set(ByVal value As Object)

                    End Set
                End Property

                Public Sub Remove(ByVal value As Object) Implements IList.Remove

                End Sub

                Public Sub RemoveAt(ByVal index As Integer) Implements IList.RemoveAt

                End Sub
            End Class
        End Namespace
    End Namespace
End Namespace
